package dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import model.Mensagem;
import model.Topico;


public class TopicoDAO {
	private EntityManager em;
	
	public TopicoDAO(EntityManager em){
		this.em = em;
	}
	
	public void adicionarTopico(Topico t){
		t.setUsuario(em.merge(t.getUsuario()));
		em.persist(t);
	}
	public void remove(Topico t) {
		Topico t1 = em.merge(t);
		em.remove(t1);		
	}
	public List<Topico> listar() {		
		Query q = em.createQuery("select u from Topico u");
		return q.getResultList();
	}

	public <E> E find(Class<E> classe, String senha) {
		return em.find(classe, senha);
	}

	public Topico buscarTopico(int id){	
		Query q = em.createQuery("select u from Topico u where u.idTopico = :id");
		q.setParameter("id", id);		
		return (Topico) q.getSingleResult();
	}

	public void adicionarMensagem(Topico t, Mensagem m) {		
		m.setTopico(em.merge(m.getTopico()));
		m.setUsuario(em.merge(m.getUsuario()));
		em.persist(m);
	}

	public void apagarMensagem(Mensagem mensagem) {
		mensagem.setTopico(null);
		mensagem.setUsuario(null);
		mensagem = em.merge(mensagem);
		em.remove(mensagem);
	}
}